# Contributor: Jeff Bilyk <jbilyk@gmail.com>
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Milan P. Stanić <mps@arvanta.net>
pkgname=haproxy
# NOTE: Upgrade only to LTS versions announced on upstream site url!
# Using LTS versions is easier to keep it in good shape for stable releases
pkgver=2.6.1
_pkgmajorver=${pkgver%.*}
pkgrel=0
pkgdesc="A TCP/HTTP reverse proxy for high availability environments"
url="https://www.haproxy.org/"
arch="all"
license="(GPL-2.0-or-later AND GPL-2.1-or-later) WITH OpenSSL-Exception"
_luaver=5.4
options="!check textrels" # FIXME: depends on vtest
# riscv64 build reports textrels
makedepends="pcre-dev openssl1.1-compat-dev linux-headers lua$_luaver-dev zlib-dev"
install="haproxy.pre-install haproxy.pre-upgrade"
subpackages="$pkgname-doc $pkgname-openrc"
source="https://www.haproxy.org/download/$_pkgmajorver/src/haproxy-$pkgver.tar.gz
	haproxy.initd
	haproxy.cfg"

# secfixes:
#   2.1.4-r0:
#     - CVE-2020-11100

build() {
	case "$CARCH" in mips|mipsel*|riscv64) _carchflags="ADDLIB=-latomic";; esac
	make \
		$_carchflags \
		TARGET=linux-musl \
		USE_PCRE=1 \
		USE_OPENSSL=1 \
		USE_ZLIB=1 \
		USE_LUA=1 \
		USE_NS=1 \
		USE_PROMEX=1 \
		LUA_LIB=/usr/lib/lua$_luaver \
		LUA_INC=/usr/include/lua$_luaver
}

check() {
	make reg-tests
}

package() {
	make install \
		DESTDIR="$pkgdir" PREFIX=/usr DOCDIR=/usr/share/doc/haproxy
	install -d \
		"$pkgdir"/var/lib/haproxy
	install -D -m 755 \
		"$srcdir"/$pkgname.initd \
		"$pkgdir"/etc/init.d/$pkgname
	install -D -m 644 \
		"$srcdir"/haproxy.cfg \
		"$pkgdir"/etc/haproxy/haproxy.cfg
}

sha512sums="
003c74cb7acfd5da71b8b3cdc2d75820fd7c354c411d2703c60824bd4babfd4a209f87f5a94b1488a1fb4c575db1f694209072cc99821553407b6a8ba4d2d9e5  haproxy-2.6.1.tar.gz
4aa8fc812079baf1d17cf9484a9b44568c3dd94f35243a57a4a7868e7f88146a4e94c80ea8ab86f1b08a524567e269a3ec119b67fc679f6bd0d9f1c70ce4f080  haproxy.initd
26bc8f8ac504fcbaec113ecbb9bb59b9da47dc8834779ebbb2870a8cadf2ee7561b3a811f01e619358a98c6c7768e8fdd90ab447098c05b82e788c8212c4c41f  haproxy.cfg
"
